﻿namespace Templay
{
    /// <summary>
    /// Interface for create provider in order to process a property of tag/Tag
    /// </summary>
    /// <example>
    /// For convert hex to color object (#ff0000) -> Color
    /// 
    /// public class ColorProvider : IPropertyProcessProvider
    /// {
    ///     public object Process(object value) 
    ///     {
    ///         return (Color)new ColorConverter().ConvertFromString(value.ToString());
    ///     }
    /// }
    /// </example>
    public interface IPropertyProcessProvider
    {
        object Process(object value);
    }

    public interface IPropertyProcessProvider<TIn, TOut>
    {
        TOut Process(TIn value);
    }

}
